跳到主要内容

Git 拉取数据

拉取远程数据

Git Fetch 命令

git fetch 做了些什么?

git fetch 完成了仅有的但是很重要的两步:

  • 从远程仓库下载本地仓库中缺失的提交记录
  • 更新本地的远程分支指针(如 o/master

git fetch 并不会改变你本地仓库的状态。它不会更新你的 master 分支,也不会修改你磁盘上的文件。(如下图所示,本地的 master 指针位置并没有变动,只是远程 master 分支变了而已)

理解这一点很重要,因为许多开发人员误以为执行了 git fetch 以后,他们本地仓库就与远程仓库同步了。它可能已经将进行这一操作所需的所有数据都下载了下来,但是并没有修改你本地的文件。git fetch 理解为单纯的下载操作。

Git Pull 拉取分支

git pull <远程库地址别名> <远程分支名>

# pull 命令
# pull 等于 fetch(抓取) + merge(合并) 两个操作的结合
git fetch <远程库地址别名> <远程分支名>
git merge <远程库地址别名> <远程分支名>

# 从远程库下载文件
git fetch LearnGitHub master

# 此时从远程库下载下来还看不到修改的内容
# 需要使用 切换到 LearnGitHub/master 才能查看,所以本质就是下载到一个分支上了
git checkout LearnGitHub/master

# 核对完之后再合并
git merge LearnGitHub/master